Skip to content

Hq coach for client forms, check ins#749

Closed
kyrixdev wants to merge 4 commits intoDomain-Connect:masterfrom
kyrixdev:HQ-Coach-for-client-forms,-check-ins
Closed

Hq coach for client forms, check ins#749
kyrixdev wants to merge 4 commits intoDomain-Connect:masterfrom
kyrixdev:HQ-Coach-for-client-forms,-check-ins

Conversation

@kyrixdev
Copy link

@kyrixdev kyrixdev commented Feb 7, 2026

Description

Domain Connect templates for HQ Coach (https://hq.coach), a fitness coaching CRM platform that allows coaches and gym owners to manage their clients, forms, payments, and email communications.

These templates enable one-click custom domain setup for HQ Coach users through DNS providers that support Domain Connect (e.g., GoDaddy).

Templates:

  • hq.coach.forms.json — CNAME record for client forms, check-ins, and assessments (e.g., forms.yourdomain.comproxy.hq.coach)
  • hq.coach.payment.json — CNAME record for payment links and invoices (e.g., pay.yourdomain.comproxy.hq.coach)
  • hq.coach.email.json — SPF, DKIM (via Resend), DMARC, and domain verification records for sending emails from the user's own domain (e.g., no-reply@yourdomain.com)

All templates use the synchronous flow with digital signatures (syncPubKeyDomain: "hq.coach"). The RSA public key is published at _dck1.hq.coach. syncRedirectDomain is also set since we use redirect_uri for callback handling.

Type of change

  • New template
  • Bug fix (non-breaking change which fixes an issue in the template)
  • New feature (non-breaking change which adds functionality to the template)
  • Breaking change (fix or feature that would cause existing template behavior to be not backward compatible)

How Has This Been Tested?

  • Schema validated using JSON Schema template.schema
  • Template functionality checked using Online Editor
  • Template is checked using template linter
  • Template file name follows the pattern <providerId>.<serviceId>.json
  • resource URL provided with logoUrl is actually served by a webserver

Checklist of common problems

  • digital signatures are used and syncPubKeyDomain specified — set to hq.coach, public key published at _dck1.hq.coach
  • syncRedirectDomain is specified when intended to use redirect_uri parameter in the synchronous flow — set to hq.coach
  • no TXT record with SPF content — email template uses SPFM type for proper SPF merging; forms/payment templates have no SPF records
  • txtConflictMatchingMode is set on TXT records which shall be unique on a label — DMARC record has "txtConflictMatchingMode": "Full", Resend verification record has "Prefix" with "txtConflictMatchingPrefix": "resend-verification="
  • variables are set to the smallest scope needed — only %resendVerification% in email template, scoped within fixed format resend-verification=%resendVerification%; forms/payment have no custom variables at all
  • no variables as a host name to apply template on subdomain — forms/payment use hostRequired: true with standard host parameter and "host": "@"; email uses hostRequired: false (records apply to root domain)
  • no explicit usage of %host% variable in host attribute — all record hosts use @ or fixed strings (resend._domainkey, _dmarc, _resend)
  • essential setting is used on records which the user shall be able to change or remove manually — DMARC record has "essential": "Always" so users can adjust their DMARC policy without dropping the whole template

Example variable values

hq.coach.forms.json (no custom variables, only standard host):

{
"testData": {
"with-host": {
"variables": {
"domain": "example.com",
"host": "forms"
},
"results": [
{
"type": "CNAME",
"name": "forms",
"ttl": 3600,
"data": "proxy.hq.coach"
}
]
}
}
}

hq.coach.payment.json (no custom variables, only standard host):

{
"testData": {
"with-host": {
"variables": {
"domain": "example.com",
"host": "pay"
},
"results": [
{
"type": "CNAME",
"name": "pay",
"ttl": 3600,
"data": "proxy.hq.coach"
}
]
}
}
}

hq.coach.email.json:

{
"testData": {
"email-setup": {
"variables": {
"domain": "example.com",
"resendVerification": "re_abc123def456"
},
"results": [
{
"type": "TXT",
"name": "_resend",
"ttl": 3600,
"data": ""resend-verification=re_abc123def456""
},
{
"type": "SPFM",
"name": "@",
"data": "include:amazonses.com"
},
{
"type": "CNAME",
"name": "resend._domainkey",
"ttl": 3600,
"data": "resend._domainkey.resend.com"
},
{
"type": "TXT",
"name": "_dmarc",
"ttl": 3600,
"data": ""v=DMARC1; p=none; rua=mailto:dmarc@hq.coach""
}
]
}
}
}

This JSON file contains configuration details for the HQ Coach email service, including provider information, service description, and DNS records for domain verification, SPF, DKIM, and DMARC.
Updated the JSON structure to include syncPubKeyDomain, syncRedirectDomain, and hostRequired fields. Changed record type from 'A' to 'CNAME' and updated pointsTo value.
Updated payment configuration to include sync domains and changed record type to CNAME.
@kyrixdev kyrixdev closed this Feb 7, 2026
@github-actions
Copy link

github-actions bot commented Feb 7, 2026

Linter OK:

Linter result for hq.coach.email.json
{"level":"warn","template":"hq.coach.email.json","error":"Key: 'Record.TxtCMM' Error:Field validation for 'TxtCMM' failed on the 'oneof' tag","code":"DCTL1005","dctl_note":"template field validation","time":1770464574}
Linter result for hq.coach.forms.json
Linter result for hq.coach.payment.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant